package com.cy;

/**
 * 多线程
 * 	--1，概述
 * 		进程是指正在运行的程序。
 * 		线程是被包含在进程里。是操作系统能够调度的最小单位也是实际的运作单位。
 * 		一个软件的运行需要依赖至少一个进程。
 * 		一个进程的运行需要依赖至少一个线程。
 * 		单线程是有1个线程，效率低。多线程拥有>1的线程数，来提高效率。
 * 	--2，线程的状态
 * 		--刚new出来的线程是新建状态
 * 		--可运行状态，等着CPU选中
 * 		--运行状态，开始执行任务
 * 		--终止状态，任务完成
 * 		--阻塞状态，运行状态没法干完活，需要等待。等待时机到了重新回到可运行状				态。。。
 * 	--3，并发和并行的区别
 * 		--并发是指 多个资源抢占一个CPU
 * 		--并行是指 每个资源分配一个CPU，不用抢
 * 四，多线程编程
 * 	--1，Thread工具类
 * 		--创建对象
 * 			Thread() 分配新的 Thread 对象。
 * 		--常用方法
 * 			static Thread currentThread()
 *           			返回对当前正在执行的线程对象的引用。
 * 			long getId()
 * 			          返回该线程的标识符。
 * 			 void setName(String name)
 * 			          改变线程名称，使之与参数 name 相同。
 * 			 String getName()
 * 			          返回该线程的名称。
 * 			void run()
 * 			static void sleep(long millis)
 * 			          在指定的毫秒数内让当前正在执行的线程休眠（暂停执行）
 * 			void start()
 * 			          使该线程开始执行；Java 虚拟机调用该线程的 run 方法。
 * 			void stop()
 * 			          已过时
 */
public class Test9 {
    public static void main(String[] args) throws InterruptedException {

        Thread t = new Thread();
        System.out.println(t.getId());//获取线程的id
        System.out.println(t.getName());//获取线程的名字Thread-0

        t.setName("test");//设置线程名称
        System.out.println(t.getName());//获取线程的名字

        t.run();//运行
        t.start();//开启线程
        t.stop();//结束线程
        Thread.sleep(100);//使线程休眠

        Thread t2 =Thread.currentThread();
        System.out.println(t2.getName());
        System.out.println(Thread.currentThread().getName());


    }
}
